#pragma once
#include "..\config.h"
//-------------------------------------------------------------------------------------
//class IRenderer. Main interface of the renderer.
//-------------------------------------------------------------------------------------
enum RER_TYPE
{
#ifdef RE_ENABLE_VIDEO_DIRECT3D9
	RER_DIRECT3D9,
#endif
#ifdef RE_ENABLE_VIDEO_DIRECT3D11
	RER_DIRECT3D11,
#endif
#ifdef RE_ENABLE_VIDEO_OPENGL
	RER_OPENGL,
#endif
	RER_NULL
};
class IRenderer
{
public:
	IRenderer() {}
	~IRenderer() {}

	virtual void VDrawMesh() = 0;
	virtual void VReset() = 0;
	virtual void VLoadTexture() = 0;
	virtual void VReleaseTexture() = 0;
	virtual void VBeginScene() = 0;
	virtual void VEndScene()  = 0;
	virtual void VClearBuffers() = 0;
	virtual void VCreateVertexBuffer() =0;
	virtual void VCreateIndexBuffer() = 0;
	virtual void VReleaseVertexBuffer() = 0;
	virtual void VReleaseIndexBuffer() = 0;
	virtual void VAddPixelShader() = 0;
	virtual void VRemovePixelShader() = 0;
	virtual void VAddVertexShader() = 0;
	virtual void VRemoveVertexShader() = 0;
};